import datetime
import os.path
import sys
import pyautogui
from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManager

class Driver:
    driver = ""
    def __init__(self, options=None):
        # 如果没有传入 options，就创建一个默认的
        if options is None:
            self.options = Options()
            # 设置默认的页面加载策略为 eager
            self.options.page_load_strategy = 'normal'
        else:
            self.options = options
        self.driver = webdriver.Edge(service=Service(EdgeChromiumDriverManager().install()), options=self.options)
        # 窗口最大化（全屏展示）
        self.driver.maximize_window()  # 添加此行代码
    def getScreeShot(self):
        #创建屏幕截图，
        # 图片文件名称：./2025-05-26-173456.png
        #图片路径: ../images/2025-05-26/2025-05-26-173456.png
        dirname = datetime.datetime.now().strftime("%Y-%m-%d")
        #要拼接上路径,这样正确在项目下找到。不然就只在common查找，判断dirname文件夹是否已经存在，若不存在就创建文件
        # 基础路径
        base_path = "../images"
        date_path = os.path.join(base_path, dirname)
        if not os.path.exists(date_path):
            os.mkdir(date_path)
        # 获取调用该方法的函数名（如LoginFail2Test）
        caller_name = sys._getframe(1).f_code.co_name
        # 生成文件名（保持原有命名规则）
        filename = f"{caller_name}-{datetime.datetime.now().strftime('%Y-%m-%d-%H%M%S')}.png"
        # 完整路径
        file_path = os.path.join(date_path, filename)
        # 全屏截图（含弹窗，使用PyAutoGUI）
        pyautogui.screenshot(file_path)
        print(f"截图已保存：{file_path}")






BlogDriver = Driver()